'''
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.
 2. Далее эта запись обрабатывается по следующему правилу:
 а) если число четное, то к двоичному представлению слева дописывается двоичная запись суммы цифр числа в двоичной записи N, а справа бит четности
 б) если число нечетное, то к двоичному представлению справа дописывается 0  и затем двоичная запись суммы цифр числа в двоичной записи N
 3. Полученная двоичная запись является результатом, который переводится в десятичную систему и выводится на экран.
 Бит четности это остаток от деления на 2 суммы цифр двоичной записи числа.
 Например, для исходного числа 12 = 11002 результатом является число 10110002 = 88, а для исходного числа 11 = 10112 результатом является число 10110112 = 91. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается максимальное число R,  меньшее 256.

Показать ответ
28
'''

for n10 in range (1,120):
    n2= bin (n10) [2:]
    #print (n2)
    if n10%2==0:
        n2=bin(sum (list(map(int,n2))))[2:] +n2 +n2[-1]
        #print (n2)
    if n10%2!=0:
        n2=n2+'0'+bin(sum(list(map(int,n2))))[2:]
        #print (n2)
    r=int(n2,2)
    if r < 256:
        print (n10,r)
        
